Method and system for specifying color of a fill area

ABSTRACT

A method and system for generating an image display plan is provided. In one embodiment, a planning system allows a user to create a display plan that specifies a sequence of images that are to be displayed and how the images are to be displayed. The planning system allows a user to specify different versions of the plan for different aspect ratios. When displaying the image, the planning system may display multiple viewports simultaneously on the image, one for each of the different aspect ratios. The planning system may allow the multiple viewports to be moved around and resized as a unit maintaining a common center point for the viewports.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation-in-part of U.S. application Ser. No.10/675,925 entitled, “Method and System for Distributing Images toClient Systems,” filed on Sep. 29, 2003, which is hereby incorporated byreference. This application is also related to the following U.S.applications filed on Nov. 7, 2003, which are hereby incorporated byreference.

U.S. Application No. Title 10/704,211 (407438002US) Method and Systemfor Displaying Multiple Aspect Ratios of a Viewport 10/704,339(407438002US1) Method and System for Specifying a Pan Path 10/704,185(407438002US2) Method and System for Specifying Pan Speed 10/704,212(407438002US3) Method and System for Specifying Zoom Speed 10/704,186(407438002US4) Method and System for Specifying Zoom Size 10/704,378(407438002US6) Method and System for Generating Image Display Plans

TECHNICAL FIELD

The described technology relates generally to displaying images andgenerating plans for controlling the display of images.

BACKGROUND

The displaying of paintings, sketches, photographs, and other images isvery popular in business and personal settings. For example, most homesand offices have paintings or photographs on their walls. It can be veryexpensive, however, to purchase, maintain, and display high-qualitypaintings—so much so that most businesses and families choose not to doso. As a result, most images that are displayed are low-costreproductions of high-quality images or originals of low-qualitypaintings. Because viewers can tire of seeing the same painting on adaily basis, some businesses change the location of the paintings thatthey display to provide more variety to their customers and employees.

Various electronic means have been used to display image to help reducethe cost of displaying images and increase the variety of images thatare displayed. For example, slide programs for general-purpose computershave been developed to display images (e.g., stored in JPEG format) ondisplay device such as a computer monitor. These slide shows typicallycycle through displaying a set of images (e.g., defined by a displaylist) at a fixed rate. Some electronic frames have been developed thatallow a user to upload their own photographs for display on a screenwithin the frame. These electronic frames can, much like a slide showprogram, cycle through displaying a set of photographs. It can be atime-consuming process, however, to change the set of images that aredisplayed either by a slide show program or an electronic picture frame.To change a set of images, a person may need to search for, pay for, anddownload an electronic version of an image and create a display listthat includes that image.

These current means for displaying images have disadvantages that relateto the difficulty of specifying the images that are to be displayed andhow they are displayed. It would be desirable to have a user-friendlytechnique for allowing a user to specify a complex plan that defines howimages are to be sequenced, transitioned, panned, zoomed, and so on.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a display page illustrating a user interface of the planningsystem in one embodiment.

FIGS. 2A-2F illustrate the manipulation of viewports in one embodiment.

FIG. 3 illustrates a display page for setting a pan path into oneembodiment.

FIGS. 4A-4C illustrate display pages for setting the pan speed in oneembodiment.

FIG. 5 is a block diagram illustrating components of the planning systemin one embodiment.

FIG. 6 is a flow diagram illustrating the processing of the setviewports component in one embodiment.

FIG. 7 is a flow diagram illustrating the processing of the displayoutline component in one embodiment.

FIG. 8 is a flow diagram illustrating the setting of the color of thematte in one embodiment.

FIG. 9 is a flow diagram illustrating the processing of the set pathfunction component in one embodiment.

FIG. 10 is a flow diagram representing the processing of the set panspeed function component in one embodiment.

DETAILED DESCRIPTION

A method and system for generating an image display plan is provided. Inone embodiment, a planning system allows a user to create a display planthat specifies a sequence of images that are to be displayed and how theimages are to be displayed. For each image in a plan, the plan mayspecify a viewport for the image (i.e., portion of the image to bedisplayed), the type and speed of transitioning from one image to thenext, the time of display of each image, and so on. The planning systemmay allow a user to specify the aspect ratio of the viewport. Forexample, the aspect ratio may be 16:9 for a wide-screen display and 4:3for a conventional display. After the plan is specified, the planningsystem allows the user to publish the plan by generating a plandocument, which may be in XML format, describing the plan. The plandocument may be executed by a display device controller to displayimages in accordance with the plan. To allow a user to specify a plan,the planning system displays an image that is to be included in the planand displays over the image a rectangle representing the viewport withthe desired aspect ratio. The planning system allows a user to move theviewport around the image to select the portion of the image to bedisplayed and allows the user to resize the viewport while maintainingits aspect ratio. In one embodiment, the planning system allows a userto specify different versions of the plan for different aspect ratios.When displaying the image, the planning system may display multipleviewports simultaneously on the image, one for each of the differentaspect ratios. For example, if a user specifies viewports with an aspectratio of 16:9 and 4:3, then the planning system may display theseviewports centered at the same location (e.g., pixel) of the image. Inone embodiment, the horizontal or vertical size (i.e., a dimension) ofthe viewports may be the same. For example, a 16:9 viewport may have ahorizontal size of 160 pixels and a vertical size of 90 pixels. If thehorizontal size of the viewports are the same, then a 4:3 viewport wouldhave a horizontal size of 160 and a vertical size of 120. The planningsystem may allow the multiple viewports to be moved around and resizedas a unit maintaining a common center point for the viewports.Alternatively, the planning system may allow a user to specify differentcenter points for each viewport. For example, a 16:9 viewport and a 4:3viewport may share the same upper-left pixel, in which case their centerpoints would be different. In such a case, the viewports can be alsomoved around and resized as a unit. When a user specifies to publish theplan, the planning system may create a separate plan document for eachaspect ratio. In this way, the planning system allows a user to view atthe same time the portions of the image that will be included in theplans for different aspect ratios.

In another embodiment, the planning system allows a user to specify asequence of viewports to effect the panning of an image. The planningsystem may allow a user specify a start viewport and an end viewportthat define the bounds of panning. For example, a user may specify astart viewport located in the upper-left corner of the image and specifyan end viewport in the lower-right corner of the image. While the imageis displayed by a display device controller, the viewport successivelymoves from the upper-left corner to the lower-right corner of the imageto effect the panning. If the start viewport is smaller than the endviewport, then the panning includes a zoom out. Conversely, if the startviewport is larger than the end viewport, then the panning includes azoom in. If the start viewport and the end viewport are different sizescentered at the same location, then the zoom in or zoom out is effectedwithout panning.

In one embodiment, the planning system may allow a user to specify thepan path between the start viewport and the end viewport. The pan pathdefines the path of the viewports. The default pan path may be astraight line between the center points of the start viewport and theend viewport. The planning system may allow a user to specify anarbitrary function that defines the pan path. For example, a user mayspecify that the pan path takes the shape of an “S.” The input to thefunction may be the current percent of pan time with the output beingthe location of the center point of the viewport for that percent of thetotal pan time.

The planning system may also allow a user to specify a variable panspeed and zoom speed. For example, a user may specify that the timebetween successive changes in the center point of the viewport occurs ata faster rate (i.e., pan speed acceleration) as of the displayedviewport approaches the end viewport. Similarly, the planning system mayallow a user to specify a variable zoom speed that indicates the speedat which the viewport zooms in or out. Both the pan speed and the zoomspeed can each be specified by arbitrary functions. The speed functionsmay input time and output the percent of path or zoom that is to occurat that time. For example, when panning occurs, a display devicecontroller may, at certain time intervals, invoke the pan speed functionpassing the current percent of the total pan time and receiving thepercent of the pan path that should be traveled by that time. Thedisplay device controller then invokes the path function passing thepercent and receiving the centerpoint associated with that percent ofthe pan path.

In one embodiment, the planning system may allow a user to specify thesize of a viewport during zooming. The default may be that the rate ofchange from the start viewport size to the end viewport size may beconstant over the zoom time. A user may specify a function defining thezoom size (viewport size) based on zoom time or based on the distance ofthe pan path. The function may be non-linear. For example, the zoom sizefunction may specify that the zoom size very quickly approaches the endviewport size and stays that size for the duration of the zoom or pantime.

FIG. 1 is a display page illustrating a user interface of the planningsystem in one embodiment. The display page 100 includes image area 101on which is displayed image 102 along with background area 103. Theimage is displayed in its base aspect ratio, which corresponds to thenumber of pixels in the horizontal and vertical directions that are usedto represent the image. In this example, the background area is filledwith a color that corresponds to the average of the colors of the image.Viewport 104 illustrates the location and size of the start viewport,and viewport 105 illustrates the location and size of the end viewport.In this example, a 16:10 viewport and a 16:9 viewport are displayed witha common center point and horizontally aligned. The outline of theviewports includes various handles for use in resizing the viewport. Inthis example, the vertical borders of the end viewports are shown as asingle line since the horizontal dimensions of the viewports are nearlythe same. In this example, the user has selected three images 109 forthe plan. The number of images field 106 indicates that the plancurrently contains three images, and the playing time field 107indicates that the total playing time for the plan is 45 minutes. Theuser may use buttons 108 to add images to, remove images from, andreorder images of the plan. The current field 110 identifies the numberof the image that is currently displayed in image area 101. The planningsystem allows the user to use the next button 111 and the previousbutton 112 to browse through the images of the plan. The transitionfields 113 allow the user to specify the type of transition from oneimage to the next image. The pan fields 114 allow the user to specifythe pan time. The start and end viewport fields 115 specify the locationand size of the start and end viewports. A user may specify the locationand size of the viewport using the viewport fields or by dragging theoutlines of the viewports and resizing the viewports using the handles.The matte and reset matte buttons 116 are used to specify the backgroundcolor for the image. In one embodiment, the reset matte button allows auser to use a color of a matte that is the average of the colors of theimage. The matte button may allow a user to specify the specific colorto be used as a background. The group field 117 allows a user to definea group of images to be treated as a unit when displayed by the displaydevice controller. For example, if a display device controller has adisplay next image function then when the images of a group are beingdisplayed and a user selects the next image function, the remainingimages of the group are skipped. The images of a group may be differentviews of the same image or different images. The text field 118 allowsthe user to specify information about the image. For example, theinformation may include title, author, date of creation, and so on. Thedisplay device controller may display this information before, during,or after the associated image is displayed. In one embodiment, thedisplay device controller may display the information on a displaydevice that is different from the one on which the images are displayed.The text field may also allow entry of a reference to a file thatcontains the information (e.g., in XML format) or a file that defines adisplay page (e.g., HTML document) to control the displaying of theinformation. The planning system allows a user to publish or create aplan document by selecting the publish button 119.

FIGS. 2A-2F illustrate the manipulation of viewports in one embodiment.FIG. 2A illustrates the display of a single viewport in one embodiment.The viewport 201 has a 16:9 aspect ratio and is centered at center point211 over the image. A user may select the viewport 201 to resize theviewport or move the viewport around the image. FIG. 2B illustrates adisplay of multiple viewports in one embodiment. The viewport 201 has a16:9 aspect ratio and is displayed at center point 211. In this example,a 16:10 viewport 202 and a 4:3 viewport 203 are also displayed. The16:10 and 16:9 of viewports are vertically aligned, and the 4:3 viewportis horizontally aligned with the 16:9 viewport. The viewports can besized as a group and may be displayed in different colors. FIG. 2Cillustrates a display of a viewport in multiple modes (e.g., landscapeor portrait). In this example, the 16:9 viewport 201 and a 9:16 viewport204 are displayed at the center point 211. The 16:9 viewport representsa landscape mode, and the 9:16 viewport represent a portrait mode. FIG.2D illustrates a display of multiple viewports in portrait mode. In thisexample, the viewports 221 are in portrait mode and correspond to theviewports of FIG. 2B. FIG. 2E illustrates the display of multipleviewports in both landscape mode and portrait mode. The viewports 221are in portrait mode, and the corresponding viewports 222 are inlandscape mode. The planning system may allow all the viewports to beadjusted (e.g., moved and resized) simultaneously as a group.Alternatively, the planning system may allow the landscape modeviewports to be moved or resized separately from the portrait modeviewports. FIG. 2F illustrates multiple viewports that do not share acenterpoint. In this example, a 16:9 viewport, a 16:10 viewport, and a4:3 viewport share the same upper-right corner and thus do not share thesame center point.

FIG. 3 illustrates a display page for setting a pan path in oneembodiment. The start viewport 301 and the end viewport 302 areconnected via a line 303. Initially, the line is displayed as a straightline between the center point of the start viewport and the center pointof the end viewport. The line includes control points 304 and 305. Thestraight line between the center points indicates the default pan pathin one embodiment. A user may select the control points to alter the panpath. In this example, the user has selected control point 305 and movedit to the lower right and has selected control point 304 and moved it tothe upper left to effect an “S” pan path. The control points and thecenter points may be curve fitted using a spline curve. One skilled inthe art will appreciate that the pan path may be specified by anarbitrary function. For example, if the center point of the end viewportis the center of the image, then a spiral pan path function may be usedas to show the viewport spiraling in towards the center of the image.Alternatively, complex zooming and panning may be effected by a sequenceof viewports over the same image. For example, the user may specify astart and end viewport along with intermediate viewports of an image andan arbitrary pan path between each pair of successive viewports. Oneskilled in the art will appreciate that a similar effect may be obtainedby having a plan with duplicate images in which the end viewport in oneimage is the start viewport of the duplicate image.

FIGS. 4A-4C illustrate display pages for setting the pan speed in oneembodiment. FIG. 4A illustrates a display page with a constant pan speedspecified. The display page includes a start viewport 401 and an endviewport 402 connected by a speed line 403. The speed line representsspeed in the y coordinate 451 as a function of time in the x coordinate452. The x coordinate represents the pan time (e.g., 15 minutes) to panfrom the start viewport to the end viewport over the pan path. In thisexample, since the line is horizontal, the pan speed is constant overthe pan time. FIG. 4B illustrates a display page with a linearlyincreasing pan speed. In this example, the start viewport 421 ispositioned at a low speed and at the end viewport 422 is positioned at ahigh speed. Line 423 illustrates the increase in pan speed when panningfrom the start viewport to the end viewport. A user may move the startviewport or the end viewport up or down to change the acceleration ofthe panning. FIG. 4C illustrates a display page with an accelerationthat varies non-linearly over the pan time. In this example, the startviewport 431 is positioned at a low speed, and the end viewport 432 ispositioned at a high speed. The line 433 was initially a straight linebetween the start viewport and the end viewport. A user moved controlpoints 434 and 435 to alter the shape of the line (including its slope)and thus the pan speed over the pan time. The planning system adjuststhe speed function so that the average speed of the panning ismaintained. Although not illustrated, one skilled in the art willappreciate that the zoom speed can be specified by a user in a similarmanner. Also, a user may provide an arbitrary function to control thepan and zoom speeds.

Table 1 provides a sample plan document in XML format. This sample planspecifies to transition into “image1” and display for 900 seconds, tofade into “image2” and then pan around “image2” for 900 seconds, and tofade into “image3” and then hold for 900 seconds. The first xfadeelement indicates to transition over 5 seconds from the current screenimage to the “image” at offset 0,0 with a width of 1366 and height of768 (i.e., 16:9 aspect ratio) and hold for 900 seconds. The second xfadeelement indicates to transition over 5 seconds from the current image(i.e., “image1”) to “image2” at offset 24,68 and hold for 5 seconds. Thepan element indicates to pan over 900 seconds from the start viewport(i.e. offset 26, 68) to the end viewport (i.e., offset 3610,3026) of“image2.” The display element indicates to display the current image(i.e., “image2”) at the offsets (i.e., panned to location) for 5seconds. The last xfade element indicates to transition over 5 secondsto “image3” at offset 0,0 and hold for 900 seconds. The backgroundcolorelement specifies the color of the matte. The group element is used fordefining a group of images. The info element is used to specify theinformation of the text field.

TABLE 1 <?xml version=“1.0” encoding=“utf-8” ?> <RGBImageScript>  <Xfade>     <Group></Group>     <Duration>5</Duration>    <Hold>900</Hold>     <Width>1366</Width>     <Height>768</Height>    <OffsetX>0</OffsetX>     <OffsetY>0</OffsetY>     <StartImage>      <Path>Screen</Path>     </StartImage>     <EndImage>      <Path>(16x9)Image1.tif</Path>      <BackgroundColor>0x617082</BackgroundColor>     </EndImage>    <Info></Info>   </Xfade>   <Xfade>     <Group></Group>    <Duration>5</Duration>     <Hold>5</Hold>     <Width>1366</Width>    <Height>768</Height>     <OffsetX>26</OffsetX>    <OffsetY>68</OffsetY>     <StartImage>       <Path>Screen</Path>    </StartImage>     <EndImage>       <Path>(16x9)Image2.tif</Path>      <BackgroundColor>0x637690</BackgroundColor>     </EndImage>    <Info></Info>   </Xfade>   <Pan>     <Group></Group>    <Duration>900</Duration>     <StartX>26</StartX>    <StartY>68</StartY>     <EndX>3610</EndX>     <EndY>3026</EndY>    <StartWidth>1366</StartWidth>     <EndWidth>1366</EndWidth>    <StartHeight>768</StartHeight>     <EndHeight>768</EndHeight>    <RGBImage>       <BackgroundColor>0x637690</BackgroundColor>      <Path>(16x9)Image2.tif</Path>     </RGBImage>     <Info></Info>  </Pan>   <Display>     <Group></Group>     <Duration>5</Duration>    <Width>1366</Width>     <Height>768</Height>    <OffsetX>3610</OffsetX>     <OffsetY>3026</OffsetY>     <RGBImage>      <Path>Screen</Path>      <BackgroundColor>0x637690</BackgroundColor>     </RGBImage>    <Info></Info>   </Display>   <Xfade>     <Group></Group>    <Duration>5</Duration>     <Hold>900</Hold>     <Width>1364</Width>    <Height>768</Height>     <OffsetX>0</OffsetX>    <OffsetY>0</OffsetY>     <StartImage>       <Path>Screen</Path>    </StartImage>     <EndImage>       <Path>(16x9)Image3.tif</Path>      <BackgroundColor>0x473522</BackgroundColor>     </EndImage>    <Info></Info>   </Xfade> </RGBImageScript>

FIG. 5 is a block diagram illustrating components of the planning systemin one embodiment. The planning system 500 includes a user interfacecomponent 501, a set viewports component 502, a set pan path functioncomponent 503, a set pan speed function component 504, a set zoom speedfunction component 505, and a publish image plan component 506. The userinterface component receives user commands, invokes the appropriatecomponents to perform those commands, and updates the displayaccordingly. The set viewport component controls the establishing of theviewport including the position and size of the viewports. The set panpath function component controls the setting of the pan path between thestart viewport and the end viewport. In one embodiment, the componentinitially displays a straight line with control points between thecenter points of the start viewport and the end viewport. The user canthen move the control points to change the shape of line with theresulting function defining the pan path between the start viewport andthe end viewport. In one embodiment, the path is defined by a splinecurve based on the position of control points. The set pan speedfunction component displays a representation of the start viewport andthe end viewport relative to a speed axis and a time axis. The time axisrepresents the pan time (e.g., 15 minutes), and the speed axisrepresents the speed of the pan over the pan time. The average pan speedis the pan distance (e.g., in number of pixels) as defined by the panpath function divided by the pan time, regardless of the specified panspeed function. As a result, the pan speed function specifies a relativespeed, rather than an absolute speed. The set zoom speed functioncomponent operates in a similar manner to the set pan speed functioncomponent except for controlling the zoom speed. Although not shown inFIG. 5, the planning system may also have a set zoom size functioncomponent that is used to specify the zoom size during zooming. A usermay specify the zoom size by changing the shape of a line connecting anindication of the start and end viewports that is displayed on acoordinate system with the x-axis representing zoom time and the y-axisrepresenting zoom size. Also, the sizes of the indicators of the startand end viewports may represent the relative sizes of the viewportsthemselves and may include the content of the viewport.

The planning system may execute on a computer system that includes acentral processing unit, memory, input devices (e.g., keyboard andpointing devices), output devices (e.g., display devices), and storagedevices (e.g., disk drives). The memory and storage devices arecomputer-readable media that may contain instructions that implement theplanning system. In addition, the data structures and message structuresmay be stored or transmitted via a data transmission medium, such as asignal on a communications link. Various communications links may beused, such as the Internet, a local area network, a wide area network,or a point-to-point dial-up connection for distribution of the plandocuments.

FIG. 6 is a flow diagram illustrating the processing of the setviewports component in one embodiment. The component controls thepositioning and sizing of the start and end viewports. In oneembodiment, the component may also allow the user to specify viewportswith different aspect ratios that can be moved and resized as a group.The component allows a user to specify the relative position of theviewports with different aspect ratios. For example, a relative positionmay indicate that all the viewports share the same center point, thesame corner point, and so on. In block 601, the component displays anoutline of the start viewport. The start and end viewports may haveinitial sizes and positions specified by the planning system. In block602, the component displays an outline of the end viewport. Thecomponent may display the viewports using different attributes (e.g.,different colors) to distinguish the start viewport from the endviewport. One skilled in the art will appreciate that the viewports canbe of an arbitrary shape such as rectangular, circular, heart, star, andso on. In addition, when the start viewport and the end viewport mayhave a different shapes, an interpolation function may be used to definethe viewport shape as it transitions from the start viewport shape tothe end viewport shape. In block 603, the component receives user input.In decision block 604, if the user indicates to resize a viewport, thenthe component continues at block 605 to control the resizing of theviewport and then loops to block 601, else the component continues atblock 606. In decision block 606, if the user specifies to move aviewport, then the component continues at block 607 to control themoving of the viewport and loops to block 601, else the componentcontinues at block 608. In decision block 608, if the user specifiescompletion of the manipulation of the viewports, then the componentcompletes, else the component performs other processing specified by theuser such as changing the attributes or shape of a viewport as indicatedby the ellipses.

FIG. 7 is a flow diagram illustrating the processing of the displayoutline component in one embodiment. In this embodiment, the componentdisplays outlines representing viewports with different aspect ratios ata common center point. The component is passed an indication of thecenter point and the number of pixels per unit of an aspect ratio. Inblocks 701-705, the component loops selecting and displaying the outlinefor each aspect ratio. In block 701, the component selects the nextaspect ratio. In decision block 702, if all the aspect ratios alreadybeen selected, then the component returns, else the component continuesat block 703. In block 703, the component sets the x coordinate of theupper-left location of the viewport to the x coordinate of the centerpoint minus one half of the x value of the aspect ratio times the numberof pixels per aspect ratio unit. For example, if the x coordinate of thecenter point is 100, the aspect ratio is 16:9, and the pixels per unitare 5, then the x coordinate of the upper-left corner of the rectangularviewport is 60 (e.g., 100−(0.5*16*5)). In block 704, the component setsthe y coordinate of the upper-left corner of the viewport to the ycoordinate of the center point minus one half of the y value of theaspect ratio times the number of pixels per aspect ratio unit. In block705, the component draws the outline of the viewport positioned at thedesignated upper-left corner and loops to block 701 to select the nextaspect ratio.

FIG. 8 is a flow diagram illustrating the setting of the color of thematte in one embodiment. In this embodiment, the component is passed anindication of the area of the image from which the color is to bederived. The component averages the color values of the pixels withinthat area and uses that average color as the color of the matte. Inblock 801, the component selects the next row of the image area. Indecision block 802, if all the rows have already been selected, then thecomponent continues at block 807, else the component continues at block803. In block 803, the component selects the next column of the selectedrow. In decision block 804, if all the columns of the selected row havealready been selected, then the component loops to block 801 to selectthe next row, else the component continues at block 805. In block 805,the component adds the color of the pixel indicated by the selected rowand the selected column to a running total of the color values of thepixels. In one embodiment, the component calculates a separate total forthe each component of the color, such as red, green, and bluecomponents. In block 806, the component increments the number of pixelsin the area and then loops to block 803 to select the next column withinthe selected row. In block 807, the component calculates the color ofthe matte by dividing the sum of the colors by the number of pixels andthen returns. In one embodiment, the planning system may allow a user tospecify rules for selecting the color of the matte that is to bedisplayed when an image is displayed. The planning system may also allowa user to specify the area of the image from which the matte color isautomatically derived, or the planning system may automatically selectthe area. The automatic selection may, for example, use an algorithm toidentify the area surrounding the subject of the image or to identifybackground area. The rules may specify to select a complimentary colorto the average color of the subject area, to not allow certain colors(e.g., brown) to be the matte color, and so on; the matte color may alsochange as the image is panned. For example, the matte color may be theaverage color of the current viewport.

FIG. 9 is a flow diagram illustrating the processing of the set pathfunction component in one embodiment. The component is passed anindication of the image and the start and end viewports. The componentallows the user to manipulate the control points of a line defining thepan path that extends from the center of the start viewport to thecenter of the end viewport. In block 901, the component displays theimage. In block 902, the component displays the start viewport. In block903, the component displays the end viewport. In block 904, thecomponent displays a line connecting the center points of the start andend viewports. The line may include handles representing control pointsfor controlling the shape of the pan path. In block 905, the componentreceives the adjustments for the control points. The component thenreturns the function defining the pan path as defined by the position ofthe control points.

FIG. 10 is a flow diagram representing the processing of the set panspeed function component in one embodiment. The component displays anindication of a speed-versus-time coordinate system and allows the userto define a function specifying the speed of the pan over time. In block1001, the component displays a start viewport indicator corresponding toa time of zero. In block 1002, the component displays an end viewportindicator corresponding to the pan time. In block 1003, the componentdisplays a line connecting the start viewport and the end viewport. Theconnecting line is initially horizontal to indicate a constant speed ofthe pan. In block 1004, the component allows the user to set the startspeed by moving the start viewport to a faster or slower speed. In block1005, the component allows the user to set pan the end pan speed byallowing the user to move the end viewport indicator to a differentspeed. In block 1006, the component allows a user to adjust thepositions of the control points of the line to specify the speedfunction. The component then returns the pan speed function based on theposition of the control points. One skilled in the art will appreciatethat a component for specifying a zoom speed function would operate in asimilar manner.

One skilled in the art will appreciate that although specificembodiments of the planning system have been described herein forpurposes of illustration, various modifications may be made withoutdeviating from the spirit and scope of the invention. In one embodiment,the color of the line representing a pan path may be varied to representthe pan speed along the pan path. For example, high intensity yellow mayrepresent a slow pan speed, high intensity green may represent theaverage pan speed, and high intensity blue may represent a fast panspeed. Also, the thickness of the line may represent the zoom speed orthe size of the viewport. In addition, the contents of each aspect ratioof a viewport may be displayed separately from the displayed image sothat a user can see what the contents of each aspect ratio will looklike separately. The planning system may also define the functions forpan path, pan speed, zoom speed, and zoom size by a map of discreetvalues such as zoom size to zoom speed. When a viewport is displayed bya display device controller, the controller may enlarge the content ofeach viewport to fill the display or may display the content of eachviewport with a size based on the relative viewport sizes. Zooming, asused herein, refers to changes in viewport size, regardless of the sizeat which the content of a viewport is ultimately displayed. Accordingly,the invention is not limited except by the appended claims.

1. A method in a computer system for identifying and displaying a colorfor content of a fill area of a display not covered by an image, themethod comprising: receiving a digital representation of the image byusing a receiving component, the digital representation indicatingcolors of pixels of the image; identifying a main subject area of theimage by using an identifying component; analyzing the colors of pixelsof the main subject area of the image by using an analyzing component;determining, by using a determining component, a color for the contentof the fill area of the display not covered by the image based on theanalysis of the colors of pixels of the main subject area of the image;displaying the image on the display; and displaying the determined colorin the fill area of the display.
 2. The method of claim 1 wherein theanalyzing includes calculating an average color of pixels of the mainsubject area of the image.
 3. The method of claim 2 wherein thedetermined color is the calculated average color of pixels of the mainsubject area of the image.
 4. The method of claim 1 wherein theidentifying the main subject area of the image comprises receiving froma user an indication of the main subject area of the image.
 5. Themethod of claim 1 wherein the determining includes applying rulesindicating colors to select based on the analysis.
 6. The method ofclaim 5 wherein the rules specify mappings between the colors of pixelsof the main subject area of the image and colors to be determined forthe content of the fill area.
 7. The method of claim 5 wherein the rulesspecify colors that should not be determined as the color for thecontent of the fill area.
 8. The method of claim 5 wherein the rulesspecify mappings between the colors of pixels of the main subject areaof the image and colors that should not be determined for the content ofthe fill area.
 9. The method of claim 5 wherein in the rules include afunction that inputs the image and returns a color to be determined forthe content of the fill area.
 10. The method of claim 1 includingdetermining a texture for the fill area based on the analysis.
 11. Themethod of claim 1 wherein a size of the fill area is based on displayingthe image in its highest resolution.
 12. A computer system foridentifying and displaying a color for a fill area of a display notcovered by an image, comprising: a data store containing a digitalrepresentation of an image, the digital representation indicating colorsof pixels of the image; a component that analyzes the colors of pixelssolely within the image; a component that determines a color for thefill area of the display not covered by the image, wherein thedetermination is made based on the analysis of the colors of pixelssolely within the image; a component that displays the image on thedisplay; and a component that displays the determined color in the fillarea of the display.
 13. The system of claim 12 wherein the componentthat analyzes calculates an average color of pixels of the image. 14.The system of claim 13 wherein the determined color is the calculatedaverage color.
 15. The system of claim 13 wherein the average color isbased on fewer than all the pixels of the image.
 16. The system of claim12 wherein the component that analyzes receives from a user anindication of an area of the image to be analyzed.
 17. The system ofclaim 12 wherein the component that analyzes identifies a main subjectarea of the image as an area of the image to be analyzed.
 18. The systemof claim 12 wherein the component that analyzes identifies a backgroundarea of the image as an area of the image to be analyzed.
 19. The systemof claim 12 wherein the component that determines applies rulesindicating colors to be determined for the fill area based on theanalysis.
 20. The system of claim 19 wherein the rules specify mappingsbetween colors of the image and colors for the fill area.
 21. The systemof claim 19 wherein the rules specify colors that should not bedetermined as the color for the fill area.
 22. The system of claim 19wherein the rules specify mappings between colors of the image andcolors that should not be determined as the color for the fill area. 23.The system of claim 19 wherein in the rules include a function thatinputs the image and returns a color.
 24. The system of claim 12includes a component that selects a texture for the fill area based onthe analysis.
 25. The system of claim 12 wherein a size of the fill areais based on displaying the image in its highest resolution.
 26. Atangible computer-readable medium having computer-executableinstructions for implementing a method of identifying and displaying acolor for a fill area of a display not covered by an image, the methodcomprising: receiving a digital representation of the image by using areceiving component, the digital representation indicating colors ofpixels of the image; providing, by using a display component, a userinterface for allowing a selection of whether the color for the fillarea of the display is to be determined manually or automatically,wherein a first option of the user interface allows a selection of thefirst option indicating that the color for the fill area of the displayis to be determined manually, and wherein a second option of the userinterface allows a selection of the second option indicating that thecolor for the fill area of the display is to be determinedautomatically; receiving, by using an input component, a selection ofthe first option or the second option; when the received selection isthe first option, receiving, by using the input component, a manualdetermination of the color for the fill area of the display; when thereceived selection is the second option, determining, by using adetermining component whether the color for the fill area of the displayis to be derived from an area of the image that is selected manually orfrom an area of the image that is selected automatically, when it isdetermined that the color for the fill area of the display is to bederived from an area of the image that is selected manually, receiving,by using the input component, a manual selection of the area of theimage from which the color for the fill area of the display is to bederived, when it is determined that the color for the fill area of thedisplay is to be derived from an area of the image that is selectedautomatically, automatically selecting the area of the image from whichthe color of the fill area of the display is to be derived by using aselection component, analyzing the colors of pixels of the selected areaof the image by using an analyzing component, and determining the colorfor the fill area of the display by using a determining component,wherein the determined color is derived based on the analysis of thecolors of pixels of the selected area of the image; displaying the imageon the display; and displaying the determined color in the fill area ofthe display not covered by the image.
 27. The computer-readable mediumof claim 26 wherein the determined color for the fill area of thedisplay is an average of the colors of pixels of the selected area ofthe image.
 28. The computer-readable medium of claim 26 wherein themethod further comprises receiving a specification of rules fordetermining the color for the fill area of the display.
 29. Thecomputer-readable medium of claim 28 wherein a specified rule is todetermine as the color for the fill area of the display a color that iscomplementary to the selected area of the image.
 30. Thecomputer-readable medium of claim 28 wherein a specified rule is to notallow certain colors to be determined as the color for the fill area ofthe display.
 31. The computer-readable medium of claim 26 wherein themethod further comprises changing the color of the fill area of thedisplay as the image is panned.
 32. A method for determining a color fora fill area of a display not covered by an image, the method comprising:receiving a digital representation of the image by using a receivingcomponent, the digital representation indicating colors of pixels of theimage; receiving, by using an input component, an indication that thecolor for the fill area of the display is to be determinedautomatically; in response to the received indication, determining, byusing a determining component, whether the color for the fill area ofthe display is to be derived from an area of the image that is selectedmanually or from an area of the image that is selected automatically,when it is determined that the color for the fill area of the display isto be derived from an area of the image that is selected manually,receiving, by using the input component, a manually determined selectionof the area of the image from which the color for the fill area of thedisplay is to be derived, when it is determined that the color for thefill area of the display is to be derived from an area of the image thatis selected automatically, automatically selecting, by using a selectioncomponent, the area of the image from which the color of the fill areaof the display is to be derived, analyzing the colors of pixels of theselected area of the image by using an analyzing component, anddetermining the color for the fill area of the display, by using adetermining component, wherein the determined color is derived based onthe analysis of the colors of pixels of the selected area of the image.33. The method of claim 32 wherein the determined color for the fillarea of the display is an average of the colors of pixels of theselected area of the image.
 34. The method of claim 32, furthercomprising receiving specified rules for determining the color for thefill area of the display.
 35. The method of claim 32, furthercomprising: displaying the image on the display; and displaying thedetermined color in the fill area of the display not covered by theimage.